const path = require('path');
const os = require('os');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const webpack = require('webpack');
const vConsolePlugin = require('vconsole-webpack-plugin')
let CONF = require("./src/assets/js/config");

// const isProduction = process.env.NODE_EVN === 'production'

function getIpAddr() {
  var interfaces = os.networkInterfaces();
  for (var devName in interfaces) {
    var iface = interfaces[devName];
    for (var i = 0; i < iface.length; i++) {
      var alias = iface[i];
      if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) {
        return alias.address;
      }
    }
  }
};


module.exports = {
  publicPath: './',    // 打包生产出来的路径
  outputDir: 'dist', // 不同的环境打不同包名
  assetsDir: 'static',
  indexPath: 'index.html',
  filenameHashing: false,
  productionSourceMap: false,


  // 修改打包后js文件名
  configureWebpack: { // webpack 配置
    output: { // 输出重构  打包编译后的 文件名称  【模块名称.版本号.js】
      filename: `static/js/[name].js?[hash:5]`,
      chunkFilename: `static/js/[name].js?[hash:5]`
    },
    plugins: [
      new vConsolePlugin({
        filter: [],  // 需要过滤的入口文件
        enable: CONF.isVconsole
      }),
      // 修改打包后css文件名
      // new MiniCssExtractPlugin({
      //   filename: `static/css/[name].css?[hash:5]`,
      //   chunkFilename: `static/css/[name].css?[hash:5]`
      // })
    ]
  },

  pages: {
    index: {
      entry: 'src/main.js',// page的入口文件
      template: 'public/index.html',//模板文件
      filename: 'index.html',
      title: 'index'
    }
  },

  lintOnSave: true,  // 是否在保存的时候使用 `eslint-loader` 进行检查。

  devServer: {   // 配置服务器
    port: 5000,
    host: getIpAddr(),
    // open: true,// 自动打开浏览器
    https: false,// 是否要https协议
    overlay: {
      warnings: true,
      errors: true
    },
    proxy: {
      '/api': {
        target: 'http://upc.pcauto.com.cn', // 你请求的第三方接口
        // secure: true, // 如果是 https ,需要开启这个选项
        changeOrigin: true, // 在本地会创建一个虚拟服务端，然后发送请求的数据，并同时接收请求的数据，这样服务端和服务端进行数据的交互就不会有跨域问题
        pathRewrite: {  // 路径重写，
          '^/api': ''  // 替换target中的请求地址，也就是说以后你在请求http://api.douban.com/v2/XXXXX这个地址的时候直接写成/api即可。
        }
      }
    },
  },



  // css: {
  //   //注入全局scss方式 (官方配置)
  //   loaderOptions: {
  //     scss: {
  //       // 默认会有‘@’别名，指向src目录
  //       // prependData: `@import "@/assets/scss/global.scss";`
  //     }
  //   }
  // }

}






